package cn.oms.pms.provider.dao.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author AllenChen曾晨
 * @since 2022-04-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("patient_info")
@ApiModel(value="PatientInfo对象", description="")
public class PatientInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "患者信息ID（新增生成）（关联预约、登记、入院）（ALL4452）（cumcNO）")
    @TableField("PATIENT_ID")
    private String patientId;

    @ApiModelProperty(value = "用户ID(auth用户ID)（一个用户账号可以绑定多个患者信息？）")
    @TableField("USER_ID")
    private String userId;

    @ApiModelProperty(value = "信息表与关联账号关系（本人，父亲，母亲）")
    @TableField("RELATIONSHIP_CODE")
    private Integer relationshipCode;

    @ApiModelProperty(value = "姓")
    @TableField("FIRST_NAME")
    private String firstName;

    @ApiModelProperty(value = "名")
    @TableField("LAST_NAME")
    private String lastName;

    @ApiModelProperty(value = "单独姓名标识（0姓名 1姓）")
    @TableField("SINGLE_NAME_FLAG")
    private Integer singleNameFlag;

    @ApiModelProperty(value = "患者姓名（中文）")
    @TableField("PATIENT_NAME_CN")
    private String patientNameCn;

    @ApiModelProperty(value = "患者姓名（英文）")
    @TableField("PATIENT_NAME_EN")
    private String patientNameEn;

    @ApiModelProperty(value = "患者姓名（拼音）")
    @TableField("PATIENT_NAME_PY")
    private String patientNamePy;

    @ApiModelProperty(value = "患者别名（中文）")
    @TableField("PATIENT_ALIAS_NAME_CN")
    private String patientAliasNameCn;

    @ApiModelProperty(value = "出生年月日( DOB:10-OCT-1999 )")
    @TableField("PATIENT_DOB")
    private LocalDate patientDob;

    @ApiModelProperty(value = "年龄")
    @TableField("PATIENT_AGE")
    private Integer patientAge;

    @ApiModelProperty(value = "年龄（月）（年龄不足1周岁的）")
    @TableField("PATIENT_AGE_MON")
    private Integer patientAgeMon;

    @ApiModelProperty(value = "血型")
    @TableField("BLOOD_TYPE")
    private String bloodType;

    @ApiModelProperty(value = "性别(0男 1女 2未知)")
    @TableField("PATIENT_SEX")
    private Integer patientSex;

    @ApiModelProperty(value = "婚姻状况（0未婚 1已婚 2离偶 3离婚 4其他）")
    @TableField("MARITAL_STATUS")
    private Integer maritalStatus;

    @ApiModelProperty(value = "医保标记（0无 1有）")
    @TableField("MBF_FLAG")
    private Integer mbfFlag;

    @ApiModelProperty(value = "医保卡账号")
    @TableField("MBF_ACCOUNT")
    private String mbfAccount;

    @ApiModelProperty(value = "居民健康卡标记（0无 1有）")
    @TableField("RHC_FLAG")
    private Integer rhcFlag;

    @ApiModelProperty(value = "居民健康卡")
    @TableField("RHC_ACCOUNT")
    private String rhcAccount;

    @ApiModelProperty(value = "民族CODE（对应民族表）")
    @TableField("NATION_NAME_CODE")
    private String nationNameCode;

    @ApiModelProperty(value = "民族名称（英文）")
    @TableField("NATION_NAME_EN")
    private String nationNameEn;

    @ApiModelProperty(value = "民族名称（中文）")
    @TableField("NATION_NAME_CN")
    private String nationNameCn;

    @ApiModelProperty(value = "国籍CODE")
    @TableField("NATIONALITY")
    private Integer nationality;

    @ApiModelProperty(value = "是否为外籍人员（0不是 1是）")
    @TableField("FOREIGNER_FLAG")
    private String foreignerFlag;

    @ApiModelProperty(value = "籍贯")
    @TableField("NATIVE_PLACE")
    private String nativePlace;

    @ApiModelProperty(value = "宗教")
    @TableField("RELIGION_CODE")
    private String religionCode;

    @ApiModelProperty(value = "首选语言（0中文 1英文）")
    @TableField("FIRST_LANGUAGE")
    private Integer firstLanguage;

    @ApiModelProperty(value = "证件类型CODE（对应证件类型表）")
    @TableField("DOCUMENT_TYPE_CODE")
    private String documentTypeCode;

    @ApiModelProperty(value = "证件类型名称(中文)")
    @TableField("DOCUMENT_TYPE_NAME_EN")
    private String documentTypeNameEn;

    @ApiModelProperty(value = "证件类型名称(英文)")
    @TableField("DOCUMENT_TYPE_NAME_CN")
    private String documentTypeNameCn;

    @ApiModelProperty(value = "证件证号（身份证号码）")
    @TableField("DOCUMENT_TYPE_NUMBER")
    private String documentTypeNumber;

    @ApiModelProperty(value = "家庭地址")
    @TableField("HOME_ADDRESS")
    private String homeAddress;

    @ApiModelProperty(value = "现居地")
    @TableField("NOW_ADDRESS")
    private String nowAddress;

    @ApiModelProperty(value = "电话区号（对应国家表的电话区号）")
    @TableField("PATIENT_PHONE_AREA_CODE")
    private String patientPhoneAreaCode;

    @ApiModelProperty(value = "电话号码")
    @TableField("PATIENT_PHONE")
    private String patientPhone;

    @ApiModelProperty(value = "邮箱")
    @TableField("PATIENT_EMAIL")
    private String patientEmail;

    @ApiModelProperty(value = "身高(cm)")
    @TableField("PATIENT_HEIGHT")
    private Integer patientHeight;

    @ApiModelProperty(value = "体重")
    @TableField("PATIENT_WEIGHT")
    private Integer patientWeight;

    @ApiModelProperty(value = "BMI")
    @TableField("PATIENT_BMI")
    private BigDecimal patientBmi;

    @ApiModelProperty(value = "臀围（cm）")
    @TableField("HIP_CIRCUMFERENCE")
    private Integer hipCircumference;

    @ApiModelProperty(value = "胸围（cm）")
    @TableField("CHEST_CIRCUMFERENCE")
    private Integer chestCircumference;

    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    @ApiModelProperty(value = "工作单位名称")
    @TableField("WORK_COMPANY_NAME")
    private String workCompanyName;

    @ApiModelProperty(value = "单位地址")
    @TableField("WORK_COMPANY_ADDRESS")
    private String workCompanyAddress;

    @ApiModelProperty(value = "单位电话")
    @TableField("WORK_COMPANY_PHONE")
    private String workCompanyPhone;

    @ApiModelProperty(value = "职业名称")
    @TableField("JOB_NAME")
    private String jobName;

    @ApiModelProperty(value = "职务名0称")
    @TableField("POSITION_NAME")
    private String positionName;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATE_TIME")
    private LocalDate createTime;

    @ApiModelProperty(value = "删除标记")
    @TableField("DEL_FLAG")
    private Integer delFlag;


}
